home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / AppleShare IP SDK / ASIP Registry / Headers / AppleShareRegistry.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-05-21  |  18.1 KB  |  648 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        AppleShareRegistry.h
  3.  
  4.      Contains:    AppleShareRegistry data types Interfaces. Formerly known as OAM and OAMTypes...
  5.  
  6.      Version:    Technology:    AppleShare IP 6.0
  7.                  Release:    ASIP 6.2 SDK - Friday, April 2, 1999 9:36:27 AM
  8.  
  9.      Copyright:    © 1995-1999 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __APPLESHAREREGISTRY__
  18. #define __APPLESHAREREGISTRY__
  19.  
  20. #ifndef __MIXEDMODE__
  21. #include <MixedMode.h>
  22. #endif
  23.  
  24. #ifndef __TYPES__
  25. #include <Types.h>
  26. #endif
  27.  
  28.  
  29.  
  30.  
  31. #if PRAGMA_ONCE
  32. #pragma once
  33. #endif
  34.  
  35. #ifdef __cplusplus
  36. extern "C" {
  37. #endif
  38.  
  39. #if PRAGMA_IMPORT
  40. #pragma import on
  41. #endif
  42.  
  43. #if PRAGMA_STRUCT_ALIGN
  44.     #pragma options align=mac68k
  45. #elif PRAGMA_STRUCT_PACKPUSH
  46.     #pragma pack(push, 2)
  47. #elif PRAGMA_STRUCT_PACK
  48.     #pragma pack(2)
  49. #endif
  50.  
  51. enum {
  52.     kOAMMachineShortID            = 0,
  53.     kOAMOwnerShortID            = 1
  54. };
  55.  
  56. /* Object Types & Attribute Signatures*/
  57. enum {
  58.     kOAMAnyObjectType            = FOUR_CHAR_CODE('****'),
  59.     kOAMMachine                    = FOUR_CHAR_CODE('mach'),
  60.     kOAMUser                    = FOUR_CHAR_CODE('user'),
  61.     kOAMGroup                    = FOUR_CHAR_CODE('grop'),
  62.     kOAMService                    = FOUR_CHAR_CODE('serv')
  63. };
  64.  
  65. /* Attribute Signatures */
  66. enum {
  67.     kOAMBasic                    = FOUR_CHAR_CODE('----'),
  68.     kOAMGestalt                    = FOUR_CHAR_CODE('gest'),
  69.     kOAMClassicFS                = FOUR_CHAR_CODE('clfs')
  70. };
  71.  
  72. /* Attribute Types */
  73. enum {
  74.                                                                 /* All Objects */
  75.     kOAMShortID                    = FOUR_CHAR_CODE('shid'),        /* UInt32 */
  76.     kOAMName                    = FOUR_CHAR_CODE('name'),        /* Str31 */
  77.     kOAMInternetName            = FOUR_CHAR_CODE('inam'),        /* Str31 */
  78.     kOAMType                    = FOUR_CHAR_CODE('type'),        /* OSType */
  79.                                                                 /* User Object Attributes */
  80.     kOAMPasswordAttribute        = FOUR_CHAR_CODE('pwd '),        /* char[8] (zero padded) */
  81.     kOAMPasswordLen                = FOUR_CHAR_CODE('pwdL'),        /* UInt8 */
  82.     kOAMUserFlags                = FOUR_CHAR_CODE('flgs'),        /* UInt16 */
  83.     kOAMUserFailedPasswordAttempts = FOUR_CHAR_CODE('blog'),    /* UInt16 */
  84.     kOAMUserPasswordCreationTime = FOUR_CHAR_CODE('pwdD'),        /* UInt32 (set by OAM agent) */
  85.     kOAMUserNumGroups            = FOUR_CHAR_CODE('nmem'),        /* UInt16 (read only) */
  86.     kOAMPrimaryGroup            = FOUR_CHAR_CODE('pgrp'),        /* UGRec (id and name) */
  87.     kOAMDisableDate                = FOUR_CHAR_CODE('disD'),        /* SInt32 */
  88.     kOAMLastLogin                = FOUR_CHAR_CODE('logD'),        /* SInt32 */
  89.     kOAMUserComment                = FOUR_CHAR_CODE('cmnt'),        /* Str197 */
  90.     kOAMUserPhoneRecord            = FOUR_CHAR_CODE('976 '),        /* OAMUserPhoneRecord */
  91.                                                                 /* Service Object Attributes */
  92.     kOAMShortStatus                = FOUR_CHAR_CODE('shst'),        /* UInt32 */
  93.     kOAMServiceFlags            = FOUR_CHAR_CODE('flag'),        /* OAMFlags */
  94.     kOAMServicePSN                = FOUR_CHAR_CODE('psn '),        /* ProcessSerialNumber */
  95.     kOAMServiceFSSpec            = FOUR_CHAR_CODE('fssp'),        /* FSSpec */
  96.     kOAMServiceType                = FOUR_CHAR_CODE('styp'),        /* OSType */
  97.                                                                 /* Machine Object Attributes */
  98.     kOAMGuestProgramLinking        = FOUR_CHAR_CODE('gstl'),        /* SInt16 */
  99.     kOAMNoGuestAccess            = FOUR_CHAR_CODE('gsta'),        /* SInt16 */
  100.     kOAMProgramLinking            = FOUR_CHAR_CODE('prgl'),        /* SInt16 */
  101.     kOAMBoot                    = FOUR_CHAR_CODE('boot'),        /* SInt16 */
  102.     kOAMFileSharingEnabled        = FOUR_CHAR_CODE('fshr'),        /* SInt16 */
  103.     kOAMApple2Mode                = FOUR_CHAR_CODE('apl2'),        /* SInt16 */
  104.     kOAMNoSavePassword            = FOUR_CHAR_CODE('spwd'),        /* SInt16 */
  105.     kOAMMultihoming                = FOUR_CHAR_CODE('mlth'),        /* SInt16 */
  106.     kOAMGuestInited                = FOUR_CHAR_CODE('gsti'),        /* SInt16 */
  107.     kOAMUGInited                = FOUR_CHAR_CODE('ugin'),        /* SInt16 */
  108.     kOAMUGFileVersion            = FOUR_CHAR_CODE('vers'),        /* SInt16 (read only) */
  109.     kOAMServerName                = FOUR_CHAR_CODE('name'),        /* Str32 */
  110.     kOAMDefaultShutdown            = FOUR_CHAR_CODE('smin'),        /* SInt16 */
  111.     kOAMMinPasswordLen            = FOUR_CHAR_CODE('plen'),        /* UInt8 */
  112.     kOAMMaxBadLogins            = FOUR_CHAR_CODE('bmax'),        /* SInt16 */
  113.     kOAMMaxPwdChgTime            = FOUR_CHAR_CODE('pwdc'),        /* SInt16 */
  114.     kOAMLoginDisabledTime        = FOUR_CHAR_CODE('disT'),        /* SInt32 */
  115.     kOAMUniqueID                = FOUR_CHAR_CODE('uniq'),        /* SInt32 */
  116.     kOAMMoreSFlags                = FOUR_CHAR_CODE('msfl'),        /* OAMFlags */
  117.     kOAMOtherFlags                = FOUR_CHAR_CODE('oflg'),        /* OAMFlags */
  118.     kOAMOTPort                    = FOUR_CHAR_CODE('port')        /* SInt16 */
  119. };
  120.  
  121. /* userFlag bits */
  122. enum {
  123.     kOAMDefaultNewUserSettings    = 0,
  124.     kOAMIACEnabledMask            = 0x0001,                        /* IAC is enabled for this user */
  125.     kOAMLoginEnabledMask        = 0x0100,                        /* Login is enabled for this user */
  126.     kOAMSuperUserMask            = 0x0200,                        /* This user is a superuser */
  127.     kOAMDisableChangePwdMask    = 0x0400,                        /* User CANNOT change password */
  128.     kOAMGetNewPwdMask            = 0x1000,
  129.     kOAMUserExpiredMask            = 0x2000                        /* User has been expired */
  130. };
  131.  
  132. /* kShortStatus codes for registered services */
  133. enum {
  134.     kOAMServiceNotRunning        = 1,
  135.     kOAMServiceRunning            = 2,
  136.     kOAMServiceStartingUp        = 3,
  137.     kOAMServiceShutingDown        = 4
  138. };
  139.  
  140. enum {
  141.     kOAMServiceAutoLaunch        = 0x00000001,                    /* Launch on startup */
  142.     kOAMServiceAutoShutdown        = 0x00000002                    /* Shutdown on quit */
  143. };
  144.  
  145. typedef UInt32                             OAMEventCode;
  146. typedef OSStatus                         OAMStatus;
  147. typedef UInt32                             OAMCallID;
  148. typedef UInt32                             OAMSessionID;
  149. typedef OSType                             OAMType;
  150. typedef OAMType *                        OAMTypePtr;
  151. typedef OSType                             OAMObjectType;
  152. typedef UInt32                             OAMFlags;
  153. typedef UInt32                             OAMShortObjectSpec;
  154. typedef UInt32 *                        OAMShortObjectSpecPtr;
  155. enum {
  156.     kOAMOptionFlags                = FOUR_CHAR_CODE('oflg'),
  157.     kOAMOptionThreadBlockCall    = FOUR_CHAR_CODE('tpre'),
  158.     kOAMOptionThreadYieldCall    = FOUR_CHAR_CODE('tpos'),
  159.     kOAMOptionThreadUnblockCall    = FOUR_CHAR_CODE('twak')
  160. };
  161.  
  162. enum {
  163.     kOAMOptionThreadMgr            = 1,
  164.     kOAMOptionExternalThreadMgr    = 2
  165. };
  166.  
  167.  
  168. struct OAMOption {
  169.     OSType                             option;
  170.     UInt32                             value;
  171. };
  172. typedef struct OAMOption                OAMOption;
  173. enum {
  174.     kOAMLocatorAppletalk        = 0
  175. };
  176.  
  177.  
  178. struct OAMServerLocator {
  179.     UInt16                             specSize;                    /* total size of this locator spec struct */
  180.     UInt32                             protType;                    /* kOAMLocatorAppletalk -> appletalk */
  181.     UInt32                             reserved1;
  182.     UInt32                             reserved2;                    /* probably script */
  183.     Str63                             name;
  184.     UInt8                             protSpecific[4];            /* variable size protocol specific part */
  185. };
  186. typedef struct OAMServerLocator            OAMServerLocator;
  187. enum {
  188.     kOAMServerAppleTalk            = 0
  189. };
  190.  
  191.  
  192. struct OAMServerSpec {
  193.     UInt16                             specSize;                    /* total size of this server spec struct */
  194.     UInt32                             protType;                    /* kOAMServerAppleTalk -> appletalk */
  195.     UInt32                             reserved1;
  196.     UInt32                             reserved2;
  197.     Str63                             name;
  198.     UInt8                             protSpecific[4];            /* variable size protocol specific part */
  199. };
  200. typedef struct OAMServerSpec            OAMServerSpec;
  201. /* Special User IDs */
  202. enum {
  203.     kOAMGuestUserID                = 0,
  204.     kOAMMachineOwnerUserID        = 1
  205. };
  206.  
  207. /* Agent Status */
  208. enum {
  209.     kOAMAgentNotInstalled        = 0,
  210.     kOAMAgentNotRunning            = 1,
  211.     kOAMAgentStartingUp            = 2,
  212.     kOAMAgentRunning            = 3,
  213.     kOAMAgentShuttingDown        = 4,
  214.     kOAMAgentNotRunningATTClose    = 5,
  215.     kOAMAgentGenesis            = 6
  216. };
  217.  
  218. /* specType */
  219. enum {
  220.     kOAMObjectSpecNull            = 0,
  221.     kOAMObjectSpecByShortID        = 1,
  222.     kOAMObjectSpecByNameType    = 2
  223. };
  224.  
  225.  
  226. struct OAMObjectSpec {
  227.     OAMType                         objectType;
  228.     OAMType                         specType;                    /* kOAMObjectSpecByShortID->short id, kOAMObjectSpecByNameType->nametype and others... */
  229.     union {
  230.         OAMShortObjectSpec                 shortID;
  231.         Str31                             name;
  232.         UInt8                             otherTypes[4];
  233.     }                                 u;
  234. };
  235. typedef struct OAMObjectSpec            OAMObjectSpec;
  236. /* keyType */
  237. enum {
  238.     kOAMKeyClearText            = 0
  239. };
  240.  
  241.  
  242. struct OAMKey {
  243.     OAMType                         keyType;                    /* kOAMKeyClearText->cleartext password */
  244.     UInt32                             keyBufferLen;
  245.     UInt8                             keyBuffer[8];
  246. };
  247. typedef struct OAMKey                    OAMKey;
  248.  
  249. struct OAMBufferDescriptor {
  250.     void *                            buffer;
  251.     UInt32                             bufferLen;
  252.     UInt32                             actCount;
  253. };
  254. typedef struct OAMBufferDescriptor        OAMBufferDescriptor;
  255.  
  256. struct OAMAttributeDescriptor {
  257.     OAMType                         attributeSignature;
  258.     OAMType                         attributeType;
  259.     OAMBufferDescriptor             bufferDescriptor;
  260.     OSStatus                         status;
  261.     UInt32                             offset;
  262.     UInt32                             actSize;
  263. };
  264. typedef struct OAMAttributeDescriptor    OAMAttributeDescriptor;
  265. /* iterationType */
  266. enum {
  267.     kOAMIterObjects                = 1,
  268.     kOAMIterMembers                = 2,
  269.     kOAMIterMemberships            = 3
  270. };
  271.  
  272. /* iterationFlags */
  273. enum {
  274.     kOAMIterByIndex                = 1,
  275.     kOAMIterByObject            = 2
  276. };
  277.  
  278.  
  279. union OAMSpecOrIndex {
  280.     OAMObjectSpec *                    startingObject;
  281.     UInt32                             startingIndex;
  282. };
  283. typedef union OAMSpecOrIndex            OAMSpecOrIndex;
  284.  
  285. struct OAMIterationSpec {
  286.     OAMType                         iterationType;
  287.     OAMFlags                         iterationFlags;
  288.     OAMTypePtr                         typeList;
  289.     OAMObjectSpec *                    iterArgument;
  290.     UInt32                             maxToGet;
  291.     OAMSpecOrIndex                     u;
  292.                                                                 /* set by call */
  293.     UInt32                             totalSize;
  294.     UInt32                             lastPosition;
  295.     Boolean                         more;
  296. };
  297. typedef struct OAMIterationSpec            OAMIterationSpec;
  298.  
  299. struct OAMParseInfo {
  300.     UInt32                             reserved[32];
  301. };
  302. typedef struct OAMParseInfo                OAMParseInfo;
  303. /* optionType */
  304. enum {
  305.     kOAMNotifyStartOption        = FOUR_CHAR_CODE('nstt'),
  306.     kOAMNotifyStopOption        = FOUR_CHAR_CODE('nstp'),
  307.     kOAMNotifySelfOption        = FOUR_CHAR_CODE('nslf')
  308. };
  309.  
  310. /* notify OAMOptionsFlags */
  311. enum {
  312.     kOAMOptionUserData            = 2
  313. };
  314.  
  315. /* notifyID */
  316. enum {
  317.     kOAMNotifyNewObject            = 1,
  318.     kOAMNotifyDeleteObject        = 2,
  319.     kOAMNotifyRenameObject        = 3,
  320.     kOAMNotifyAttributeSet        = 4,
  321.     kOAMNotifyMemberAdd            = 5,
  322.     kOAMNotifyMemberRemove        = 6,
  323.     kOAMNotifyLogin                = 7,
  324.     kOAMNotifyAll                = 8,
  325.     kOAMMaxNotify                = kOAMNotifyAll
  326. };
  327.  
  328.  
  329. struct OAMBooleanOption {
  330.     UInt16                             value;
  331. };
  332. typedef struct OAMBooleanOption            OAMBooleanOption;
  333. enum {
  334.     kOAMNotifyAllObjects        = -1
  335. };
  336.  
  337.  
  338. struct OAMNotifyOption {
  339.     UInt32                             notifyID;
  340.     UInt32                             objectID;                    /* kOAMNotifyAllObjects -> all objects */
  341. };
  342. typedef struct OAMNotifyOption            OAMNotifyOption;
  343.  
  344. struct OAMNotificationSpec {
  345.     OAMType                         oamType;
  346.     OAMBufferDescriptor             bufferDescriptor;
  347. };
  348. typedef struct OAMNotificationSpec        OAMNotificationSpec;
  349.  
  350. struct OAMNotification {
  351.     UInt16                             version;                    /* 0 */
  352.     OAMSessionID                     sess;
  353.     OAMShortObjectSpec                 objectID;
  354.     UInt32                             notifyID;                    /* notifyID = kOAMNotifyNewObject | kOAMNotifyAttributeSet | .... */
  355.     UInt32                             userData;
  356.     union {
  357.         OAMType                         oamType;
  358.         OAMShortObjectSpec                 member;
  359.     }                                 u;
  360. };
  361. typedef struct OAMNotification            OAMNotification;
  362. /* OAM Notification Support */
  363. typedef CALLBACK_API_C( void , OAMNotificationProcPtr )(OAMNotification *notification);
  364. typedef STACK_UPP_TYPE(OAMNotificationProcPtr)                     OAMNotificationUPP;
  365. #if OPAQUE_UPP_TYPES
  366.     EXTERN_API(OAMNotificationUPP)
  367.     NewOAMNotificationUPP           (OAMNotificationProcPtr    userRoutine);
  368.  
  369.     EXTERN_API(void)
  370.     DisposeOAMNotificationUPP       (OAMNotificationUPP        userUPP);
  371.  
  372.     EXTERN_API(void)
  373.     InvokeOAMNotificationUPP       (OAMNotification *        notification,
  374.                                     OAMNotificationUPP        userUPP);
  375.  
  376. #else
  377.     enum { uppOAMNotificationProcInfo = 0x000000C1 };                 /* no_return_value Func(4_bytes) */
  378.     #define NewOAMNotificationUPP(userRoutine)                         (OAMNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOAMNotificationProcInfo, GetCurrentArchitecture())
  379.     #define DisposeOAMNotificationUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  380.     #define InvokeOAMNotificationUPP(notification, userUPP)         CALL_ONE_PARAMETER_UPP((userUPP), uppOAMNotificationProcInfo, (notification))
  381. #endif
  382. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  383. #define NewOAMNotificationProc(userRoutine)                     NewOAMNotificationUPP(userRoutine)
  384. #define CallOAMNotificationProc(userRoutine, notification)        InvokeOAMNotificationUPP(notification, userRoutine)
  385. /* session option */
  386. enum {
  387.     kOAMOptionMemory            = FOUR_CHAR_CODE(' mem')
  388. };
  389.  
  390. /* authentication flags */
  391. enum {
  392.     kOAMAuthLogin                = 0,
  393.     kOAMAuthLoginContinue        = 1,
  394.     kOAMAuthChangeKey            = 2,
  395.     kOAMAuthChangeKeyContinue    = 3
  396. };
  397.  
  398. enum {
  399.     kOAMAuthStream                = 1
  400. };
  401.  
  402.  
  403. struct OAMAuthenticateInfo {
  404.     OAMObjectSpec *                    objectSpec;
  405.     UInt16                             flags;
  406.     UInt16                             stage;                        /* intialial set to zero */
  407.     OAMStatus                         objStatus;
  408.     UInt8                             uam[64];
  409.     UInt8                             reserved[64];
  410. };
  411. typedef struct OAMAuthenticateInfo        OAMAuthenticateInfo;
  412.  
  413. typedef unsigned char                     OAMCallNumber[128];
  414. /* bits for phoneFlags */
  415. enum {
  416.     kOAMLoginBit                = 0,
  417.     kOAMCallbackBit                = 1
  418. };
  419.  
  420.  
  421. struct OAMUserPhoneRecord {
  422.     SInt16                             phoneFlags;
  423.     SInt16                             retryCount;
  424.     OAMCallNumber                     callNum;                    /* callback number*/
  425. };
  426. typedef struct OAMUserPhoneRecord        OAMUserPhoneRecord;
  427. /* Error Codes */
  428. enum {
  429.                                                                 /* General */
  430.     kOAMInitializationErr        = -29300,
  431.     kOAMParameterErr            = -29301,
  432.     kOAMGeneralErr                = -29302,                        /* Objects */
  433.     kOAMObjectNotFoundErr        = -29310,
  434.     kOAMContainerObjectNotFoundErr = -29311,
  435.     kOAMMemberObjectNotFoundErr    = -29312,
  436.     kOAMDuplicateObjectErr        = -29320,
  437.     kOAMCreateRestrictedErr        = -29321,
  438.     kOAMMaximumObjectsErr        = -29330,
  439.     kOAMMaximumMemberObjectsErr    = -29331,                        /* Attributes */
  440.     kOAMAttributeNotFoundErr    = -29340,
  441.     kOAMAttributeReadOnlyErr    = -29341,
  442.     kOAMAttributeReadWriteOnlyErr = -29342,
  443.     kOAMAttributeBufferTooSmallErr = -29343,
  444.     kOAMAttributeBufferTooLargeErr = -29344,
  445.     kOAMMaximumAttributesErr    = -29345,                        /* Buffers */
  446.     kOAMBufferTooSmallErr        = -29350,
  447.     kOAMBufferTooLargeErr        = -29351,                        /* Authentication */
  448.     kOAMAuthenticationErr        = -29360,
  449.     kOAMAuthenticationInProgressErr = -29361,
  450.     kOAMLoginDisabledErr        = -29362,
  451.     kOAMAuthenticationServerErr    = -29363,
  452.     kOAMUAMNotFoundErr            = -29364,
  453.     kOAMAdminDisabledErr        = -29365,
  454.     kOAMAuthenticationAdminErr    = -29366,                        /* Password */
  455.     kOAMPasswordNeedsChangeErr    = -29370,
  456.     kOAMPasswordExpiredErr        = -29371,
  457.     kOAMPasswordMinimumLenErr    = -29372,
  458.     kOAMSamePasswordErr            = -29373,
  459.     kOAMPasswordChangeDisabledErr = -29374,                        /* Session */
  460.     kOAMServerNotFoundErr        = -29380,
  461.     kOAMServerNotInstalledErr    = -29381,
  462.     kOAMServerNotReadyErr        = -29382,
  463.     kOAMNoMachineNameErr        = -29383,
  464.     kOAMRequestTooLargeErr        = -29384,
  465.     kOAMNetworkErr                = -29385,
  466.     kOAMSessionIDErr            = -29386,
  467.     kOAMMaximumSessionsErr        = -29387,
  468.     kOAMSecondaryBusyErr        = -29388
  469. };
  470.  
  471. enum {
  472.     kOAMParseDone                = 99
  473. };
  474.  
  475. EXTERN_API_C( OAMStatus )
  476. OAMInitialize                    (UInt32                 numSessions,
  477.                                  UInt32                 maxNumCalls,
  478.                                  OAMBufferDescriptor *    buffer_i,
  479.                                  OAMOption *            flags_i);
  480.  
  481.  
  482. EXTERN_API_C( OAMStatus )
  483. OAMDeInitialize                    (void);
  484.  
  485. EXTERN_API_C( OAMStatus )
  486. OAMFindServer                    (OAMServerLocator *        locator_i,
  487.                                  OAMBufferDescriptor *    buffer_o,
  488.                                  UInt32 *                numInBuffer_o,
  489.                                  UInt32 *                numFound_o,
  490.                                  OAMOption *            options);
  491.  
  492.  
  493. EXTERN_API_C( OAMStatus )
  494. OAMFindServerExtract            (OAMBufferDescriptor *    buffer_i,
  495.                                  UInt32                 index_i,
  496.                                  OAMServerSpec *        spec_o);
  497.  
  498.  
  499. EXTERN_API_C( UInt32 )
  500. OAMGetSize                        (UInt32                 numSessions,
  501.                                  UInt32                 maxNumCalls);
  502.  
  503. EXTERN_API_C( OAMStatus )
  504. OAMGetLocalServerStatus            (UInt32 *                serverStatus);
  505.  
  506. EXTERN_API_C( OAMStatus )
  507. OAMOpenSession                    (OAMServerSpec *        server_i,
  508.                                  OAMSessionID *            sessID_o,
  509.                                  OAMOption *            options);
  510.  
  511. EXTERN_API_C( OAMStatus )
  512. OAMCloseSession                    (OAMSessionID             sessID_o,
  513.                                  OAMOption *            options);
  514.  
  515. EXTERN_API_C( OAMStatus )
  516. OAMAuthenticateSession            (OAMSessionID             sessID,
  517.                                  OAMObjectSpec *        user,
  518.                                  OAMKey *                key,
  519.                                  OAMOption *            options);
  520.  
  521. EXTERN_API_C( OAMStatus )
  522. OAMCreateObject                    (OAMSessionID             sessID,
  523.                                  OAMObjectSpec *        object,
  524.                                  OAMAttributeDescriptor * attr,
  525.                                  OAMOption *            options);
  526.  
  527. EXTERN_API_C( OAMStatus )
  528. OAMDeleteObject                    (OAMSessionID             sessID,
  529.                                  OAMObjectSpec *        object,
  530.                                  OAMOption *            options);
  531.  
  532. EXTERN_API_C( OAMStatus )
  533. OAMGetAttribute                    (OAMSessionID             sessID,
  534.                                  OAMObjectSpec *        object,
  535.                                  OAMAttributeDescriptor * attr,
  536.                                  OAMOption *            options);
  537.  
  538. EXTERN_API_C( OAMStatus )
  539. OAMSetAttribute                    (OAMSessionID             sessID,
  540.                                  OAMObjectSpec *        key,
  541.                                  OAMAttributeDescriptor * attr,
  542.                                  OAMOption *            options);
  543.  
  544. EXTERN_API_C( OAMStatus )
  545. OAMDeleteAttribute                (OAMSessionID             sessID,
  546.                                  OAMObjectSpec *        object,
  547.                                  OAMAttributeDescriptor * attr,
  548.                                  OAMOption *            options);
  549.  
  550. EXTERN_API_C( OAMStatus )
  551. OAMIsGroupMember                (OAMSessionID             sessID,
  552.                                  OAMObjectSpec *        group,
  553.                                  OAMObjectSpec *        member,
  554.                                  Boolean *                isMember,
  555.                                  OAMOption *            options);
  556.  
  557. EXTERN_API_C( OAMStatus )
  558. OAMAddGroupMember                (OAMSessionID             sessID,
  559.                                  OAMObjectSpec *        group,
  560.                                  OAMObjectSpec *        newMember,
  561.                                  OAMOption *            options);
  562.  
  563. EXTERN_API_C( OAMStatus )
  564. OAMRemoveGroupMember            (OAMSessionID             sessID,
  565.                                  OAMObjectSpec *        group,
  566.                                  OAMObjectSpec *        oldMember,
  567.                                  OAMOption *            options);
  568.  
  569. EXTERN_API_C( OAMStatus )
  570. OAMIterate                        (OAMSessionID             sessID,
  571.                                  OAMIterationSpec *        iterSpec,
  572.                                  OAMAttributeDescriptor * desc,
  573.                                  OAMBufferDescriptor *    buffer,
  574.                                  OAMOption *            options);
  575.  
  576. EXTERN_API_C( OAMStatus )
  577. OAMParseAttributeBuffer            (OAMBufferDescriptor *    buffer,
  578.                                  OAMAttributeDescriptor * desc,
  579.                                  OAMParseInfo *            parseInfo);
  580.  
  581. EXTERN_API_C( OAMStatus )
  582. OAMParseGetNextObject            (OAMParseInfo *            parseInfo,
  583.                                  OAMObjectSpec *        object);
  584.  
  585. EXTERN_API_C( OAMStatus )
  586. OAMParseGetNextAttribute        (OAMParseInfo *            parseInfo,
  587.                                  OAMAttributeDescriptor * attr);
  588.  
  589. EXTERN_API_C( OAMStatus )
  590. OAMSetNotificationProc            (OAMSessionID             sessID,
  591.                                  OAMNotificationUPP     procPtr,
  592.                                  OAMOption *            options);
  593.  
  594. EXTERN_API_C( OAMStatus )
  595. OAMRequestNotification            (OAMSessionID             sessionID,
  596.                                  OAMNotificationSpec *    notificationSpec,
  597.                                  OAMOption *            options);
  598.  
  599. EXTERN_API_C( OAMStatus )
  600. OAMBecomeHelperThread            (void);
  601.  
  602. EXTERN_API_C( OAMStatus )
  603. OAMStartService                    (OAMSessionID             sessID,
  604.                                  OAMObjectSpec *        objectSpec,
  605.                                  OAMOption *            options);
  606.  
  607. EXTERN_API_C( OAMStatus )
  608. OAMStopService                    (OAMSessionID             sessID,
  609.                                  OAMObjectSpec *        objectSpec,
  610.                                  OAMOption *            options);
  611.  
  612. EXTERN_API_C( OAMStatus )
  613. OAMAuthenticateObject            (OAMSessionID             sessID,
  614.                                  OAMAuthenticateInfo *    authInfo,
  615.                                  OAMBufferDescriptor *    inDescriptor,
  616.                                  OAMBufferDescriptor *    outDescriptor,
  617.                                  OAMOption *            options);
  618.  
  619. EXTERN_API_C( OAMStatus )
  620. OAMChangeObjectKey                (OAMSessionID             sessID,
  621.                                  OAMAuthenticateInfo *    authInfo,
  622.                                  OAMBufferDescriptor *    inDescriptor,
  623.                                  OAMBufferDescriptor *    outDescriptor,
  624.                                  OAMOption *            options);
  625.  
  626.  
  627.  
  628. #if PRAGMA_STRUCT_ALIGN
  629.     #pragma options align=reset
  630. #elif PRAGMA_STRUCT_PACKPUSH
  631.     #pragma pack(pop)
  632. #elif PRAGMA_STRUCT_PACK
  633.     #pragma pack()
  634. #endif
  635.  
  636. #ifdef PRAGMA_IMPORT_OFF
  637. #pragma import off
  638. #elif PRAGMA_IMPORT
  639. #pragma import reset
  640. #endif
  641.  
  642. #ifdef __cplusplus
  643. }
  644. #endif
  645.  
  646. #endif /* __APPLESHAREREGISTRY__ */
  647.  
  648.